package com.example.miscontactos;

import com.example.miscontactos.Entidades.MensajesWebsEntity;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.NotificationCompat;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.NotificationManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class CrearMensajeWeb extends Activity 
{

	private Button btnEnviarMensaje;
	private EditText txtTo;
	private EditText txtMensaje;
	private static final String WEB_USER_NAME = "user";
	private static final String WEB_PASS = "pass";
	private SharedPreferences preferencias;
	private String userName;
	private String userPass;
	private Boolean enviadoExitosamente;
	private String INTERNET_CONNECTION = "INTERNET_CONNECTION";
	private String ESTA_INTERNET_ON = "esta_internet_on";
	private static final String FROM = "from";
	
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_crear_mensaje_web);
		
		String userTo = ""; 
		userTo = getIntent().getExtras().getString(FROM);
		
		llamarBroadCast();
		setearUserAndPass();
		txtMensaje = (EditText)findViewById(R.id.txtMensaje);
		txtTo = (EditText)findViewById(R.id.txtTo);
		
		if (!userTo.endsWith(""))
			txtTo.setText((CharSequence) userTo);
		
		btnEnviarMensaje = (Button)findViewById(R.id.btnEnviarMensaje);
		btnEnviarMensaje.setOnClickListener(new View.OnClickListener() 
		{			
			@Override
			public void onClick(View v) 
			{
				preferencias = PreferenceManager.getDefaultSharedPreferences(CrearMensajeWeb.this);
				Boolean isOn = preferencias.getBoolean(ESTA_INTERNET_ON, false);
				if(isOn)
				{
					byte[] xml = MensajesWebsEntity.crearMensaje(userName, userPass, txtMensaje.getText().toString(), txtTo.getText().toString());
					enviadoExitosamente = Utilities.enviarMensaje(xml, CrearMensajeWeb.this);
					mostrarNotificacion();
				}
				else
				{
					AlertDialog.Builder dialogoBuilder = new AlertDialog.Builder(CrearMensajeWeb.this);
					dialogoBuilder.setTitle(getResources().getString(R.string.titulo_dialogo_sin_internet));
					dialogoBuilder.setMessage(getResources().getString(R.string.mensaje_dialogo_sin_internet));
					
					dialogoBuilder.setPositiveButton(getResources().getString(R.string.aceptar_alert_dialog), new DialogInterface.OnClickListener()
					{
						public void onClick(DialogInterface dialog, int which) 
						{
							return;
						}
					});
					
					dialogoBuilder.show();
				}				
			}
		});
	}
	
	@Override
	public void onResume()
	{
		super.onResume();
		llamarBroadCast();
	}
	
	private void llamarBroadCast()
	{
		Intent intent = new Intent(INTERNET_CONNECTION);
        sendBroadcast(intent); 
	}
	
	private void mostrarNotificacion()
	{
		NotificationCompat.Builder mBuilder = null;
		if(enviadoExitosamente)
		{
	        mBuilder = new NotificationCompat.Builder(this)
				.setSmallIcon(R.drawable.send_message)
			    .setContentTitle(getResources().getString(R.string.titulo_mensaje_enviado_exitosamente))
			    .setContentText(getResources().getString(R.string.cuerpo_mensaje_enviado_exitosamente));
		}
		else
		{
			mBuilder = new NotificationCompat.Builder(this)
	        	.setSmallIcon(R.drawable.send_message)
	        	.setContentTitle(getResources().getString(R.string.titulo_mensaje_con_error))
	        	.setContentText(getResources().getString(R.string.cuerpo_mensaje_con_error));
		}
		
		NotificationManager mNotificationManager =
			    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
		
		mNotificationManager.notify(0, mBuilder.build());
	}
	
	private void setearUserAndPass()
	{
		preferencias = PreferenceManager.getDefaultSharedPreferences(this);
		userName = preferencias.getString(WEB_USER_NAME, "");
		userPass = preferencias.getString(WEB_PASS, "");
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) 
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_crear_mensaje_web, menu);
		return true;
	}

}
